package com.hiultra.archive.device.print;

import java.util.List;
import java.util.Map;

/**
 * NullAndEmptyUtil
 *
 * @Description: 空值判断工具类
 * @Author: Honei.Xun
 * @Date: 2022/7/4 21:40
 **/
public class NullAndEmptyUtil {

    /**
     * 判断字符串是否为空,空对象，空字符串都为空，返回true
     * @param value
     * @return
     */
    public static boolean isEmptyString(String value){
        if(null == value){
            return true;
        }else if("".equals(value)){
            return true;
        }else{
            return false;
        }
    }

    /**
     * 判断字符串是否不为空,空对象，空字符串都为空，返回false
     * @param value
     * @return
     */
    public static boolean isNotEmptyString(String value){
        if(null == value){
            return false;
        }else if("".equals(value)){
            return false;
        }else{
            return true;
        }
    }


    /**
     * 判断整型包装类是否为NULL,空对象，如果是返回true
     * @param value
     * @return
     */
    public static boolean isNullInteger(Integer value){
        if(null == value){
            return true;
        }else{
            return false;
        }
    }
    /**
     * 判断整型包装类是否不为NULL,空对象，如果不是返回true
     * @param value
     * @return
     */
    public static boolean isNotNullInteger(Integer value){
        if(null == value){
            return false;
        }else{
            return true;
        }
    }



    /**
     * 判断整型是否是空或者是0，是返回true  不是返回false
     * @param value
     * @return
     */
    public static boolean isEmptyInteger(Integer value){
        if(null == value){
            return true;
        }else if((int)value == 0){
            return true;
        }else{
            return false;
        }
    }

    /**
     * 判断整型是否不为空或者是0，是返回false  不是返回true
     * @param value
     * @return
     */
    public static boolean isNotEmptyInteger(Integer value){
        if(null == value){
            return false;
        }else if((int)value == 0){
            return false;
        }else{
            return true;
        }
    }



    /**
     * 判断Long包装类是否为NULL,空对象，如果是返回true
     * @param value
     * @return
     */
    public static boolean isNullLong(Long value){
        if(null == value){
            return true;
        }else{
            return false;
        }
    }
    /**
     * 判断Long包装类是否不为NULL,空对象，如果不是返回true
     * @param value
     * @return
     */
    public static boolean isNotNullLong(Long value){
        if(null == value){
            return false;
        }else{
            return true;
        }
    }


    /**
     * 判断List类是否为NULL,如果是返回true
     * @param value
     * @return
     */
    public static boolean isNullList(List value){
        if(null == value){
            return true;
        }else {
            return false;
        }
    }
    /**
     * 判断List类是否不为NULL，为空返回false,不为空返回true
     * @param value
     * @return
     */
    public static boolean isNotNullList(List value){
        if(null == value){
            return false;
        }else {
            return true;
        }
    }


    /**
     * 判断List类是否为NULL,空对象或者长度为0，如果是返回true
     * @param value
     * @return
     */
    public static boolean isEmptyList(List value){
        if(null == value){
            return true;
        }else if(0 == value.size()){
            return true;
        }else{
            return false;
        }
    }
    /**
     * 判断List类是否不为NULL,空对象或者长度为0，如果是返回false
     * @param value
     * @return
     */
    public static boolean isNotEmptyList(List value){
        if(null == value){
            return false;
        }else if(0 == value.size()){
            return false;
        }else{
            return true;
        }
    }


    /**
     * 判断Map类是否为NULL,空对象或者长度为0，如果是返回true
     * @param value
     * @return
     */
    public static boolean isEmptyMap(Map value){
        if(null == value){
            return true;
        }else if(0 == value.size()){
            return true;
        }else{
            return false;
        }
    }
    /**
     * 判断Map类是否不为NULL,空对象或者长度为0，如果是返回false
     * @param value
     * @return
     */
    public static boolean isNotEmptyMap(Map value){
        if(null == value){
            return false;
        }else if(0 == value.size()){
            return false;
        }else{
            return true;
        }
    }


    /**
     * 判断Object是否为NULL,空对象，如果是返回true
     * @param value
     * @return
     */
    public static boolean isNullObject(Object value){
        if(null == value){
            return true;
        }else{
            return false;
        }
    }
    /**
     * 判断Object是否不为NULL,空对象，如果不是返回true
     * @param value
     * @return
     */
    public static boolean isNotNullObject(Object value){
        if(null == value){
            return false;
        }else return !"".equals(value);
    }

}
